<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Categorias extends CI_Controller {

	// Constructor de Clase
	function __construct() {
		parent::__construct();

		$this->load->model('Model_Categorias');
		$this->load->library('categoriasLib');
		$this->load->library('pagination');

		$this->form_validation->set_message('required', 'Debe ingresar un valor para %s');
		$this->form_validation->set_message('norep', 'Existe otro registro con el mismo nombre');
	}

//	public function index() {
//		$data['contenido'] = 'categorias/index';
//		$data['titulo'] = 'Categorias';
//		$data['query'] = $this->Model_Categorias->all();
//		$this->load->view('template', $data);
//	}

	public function index()
	{
     
 	  	$opciones = array();
    	$desde = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
 
 	 	$opciones['per_page'] = 10;
    	$opciones['base_url'] = base_url().'categorias/index/';
    	$opciones['total_rows'] = $this->Model_Categorias->contar();
    	$opciones['numb_links'] = 5;
    	$opciones['first_link'] = 'Primera';//primer link
        $opciones['last_link'] = 'Última';//último link
        $opciones['next_link'] = 'Siguiente';//siguiente link
        $opciones['prev_link'] = 'Anterior';//anterior link
        $opciones['full_tag_open'] = '<div id="pagination">';//el div que debemos maquetar
        $opciones['full_tag_close'] = '</div>';//el cierre del div de la paginación
    	$opciones['uri_segment'] = 3;
 
 		$this->pagination->initialize($opciones);
     
     	$data['query'] = $this->Model_Categorias->alllimit($opciones['per_page'],$desde);
    	$data['paginar'] = $this->pagination->create_links();
 		$data['titulo'] = 'Categorias';
 		$data['contenido'] = 'categorias/index';
    	$this->load->view('template',$data);
	}	

	public function search() {
		$data['contenido'] = 'categorias/index';
		$data['titulo'] = 'Categorias';
		$value = $this->input->post('buscar');
		$data['query'] = $this->Model_Categorias->allFiltered('categoria', $value);
		$this->load->view('template', $data);
	}

	public function norep() {
		return $this->categoriaslib->norep($this->input->post());
	}

	public function create() {
		$data['contenido'] = 'categorias/create';
		$data['titulo'] = 'Crear Categoria';
		$this->load->view('template', $data);
	}

	public function insert() {
		$registro = $this->input->post();

		$this->form_validation->set_rules('categoria', 'Nombre', 'required|callback_norep');
		if($this->form_validation->run() == FALSE) {
			$this->create();
		}
		else {
			$registro['created'] = date('Y/m/d H:i');
			$registro['updated'] = date('Y/m/d H:i');
			$this->Model_Categorias->insert($registro);
			redirect('categorias/index');
		}
	}

	public function edit($id) {
		// $id = $this->uri->segment(3);

		$data['contenido'] = 'categorias/edit';
		$data['titulo'] = 'Actualizar Categoria';
		$data['registro'] = $this->Model_Categorias->find($id);
		$this->load->view('template', $data);
	}

	public function update() {
		$registro = $this->input->post();

		$this->form_validation->set_rules('categoria', 'Nombre', 'required|callback_norep');
		if($this->form_validation->run() == FALSE) {
			$this->edit($registro['id']);
		}
		else {
			$registro['updated'] = date('Y/m/d H:i');
			$this->Model_Categorias->update($registro);
			redirect('categorias/index');
		}
	}

	public function delete($id) {
		$this->Model_Categorias->delete($id);
		redirect('categorias/index');
	}

}
